<?php
/**
 * @name       Util
 * @access     public
 * @author     Marcos Vinicius Pereira dos Santos, <marcos@eagletecnologia.com>
 * @version    1.0
 * @package    PHPJasperReport
 * @subpackage Core
 * @since      1.0
 */
class Util {
    private function  __construct() {

    }

    /**
     * @access public
     * @static
     * @param String $time1
     * @param String $time2
     * @return String
     */
    public static final function sumTime($time1,$time2){
        $time = null;

        if(ereg('[0-9]+:[0-5][0-9]|[0-9]+:[0-5][0-9]:[0-5][0-9]',$time1)){
            if(ereg('[0-9]+:[0-5][0-9]|[0-9]+:[0-5][0-9]:[0-5][0-9]',$time2)){
                
                $time1 = explode(':',(strlen($time1) == 5)?$time1.':00':$time1);
                $time2 = explode(':',(strlen($time2) == 5)?$time2.':00':$time2);

                $time = mktime($time1[0],$time1[1],$time1[2]) + mktime($time2[0],$time2[1],$time2[2]);
            
                $time = date("h:i:s",$time);
            }else{
                throw new Exception('Variável $time2 não possui um valor de hora!');
            }

        }else{
            throw new Exception('Variável $time1 não possui um valor de hora!');
        }        

        return $time;
    }

    /**
     * @access public
     * @static
     * @param String $time
     * @param Integer $num
     * @param String
     */
    public static final function divTimeByReal($time,$num){
        $returnValue = null;

        if(ereg('[0-9]+:[0-5][0-9]|[0-9]+:[0-5][0-9]:[0-5][0-9]',$time)){
            if(is_numeric($num)){
               $time = explode(':',(strlen($time) == 5)?$time.':00':$time);
               
               $returnValue = mktime($time[0],$time[1],$time[2])/$num;
            }else{
                 throw new Exception('Variável $num não possui um valor numerico!');
            }
        }else{
            throw new Exception('Variável $time não possui um valor de hora!');
        }

        return $returnValue;
    }

    /**
     * @access public
     * @static
     * @param String $expression
     * @return Boolean
     */
    public static final function expression_is_valid($expression){
    }

    /**
     * @access public
     * @static
     * @param String $expression
     * @return Mixed
     */
    public static final function evalExpression($expression){       
        $return = $expression;
        
        if(!ereg('{|[0-9]+:|^[0-9]+|^[0-9]+[\.\,][0-9]+', $expression)){            
            eval("\$return = ".$expression.";");           
            $return = utf8_encode($return);
        }
        
        return $return;
    }
} 
?>
